package cn.bonoon.kernel.web;

import cn.bonoon.kernel.util.StringHelper;


/**
 * <pre>
 * 关于界面、代码段的嵌入方式
 * </pre>
 * @author jackson
 *
 */
public enum EmbedType {
	/**
	 * 属性的嵌入方式，如：${propertyName}等
	 */
	PROPERTY{
		@Override
		protected void __parse(StringBuilder html, String name) {
			html.append("$!{").append(name).append('}');
		}
	},
	/**
	 * 以#parse('path/filename.vm')的方式嵌入
	 */
	PARSE{
		@Override
		protected void __parse(StringBuilder html, String name) {
			html.append("#parse(\"").append(name).append("\")");
		}
	},
	/**
	 * 以#include('path/filename.vm')的方式嵌入
	 */
	INCLUDE{
		@Override
		protected void __parse(StringBuilder html, String name) {
			html.append("#include(\"").append(name).append("\")");
		}
	},
	/**
	 * 直接嵌入html文本内容；
	 * 也可以是模板引擎的任何的语法，如：直接写成${name},#name 等
	 */
	HTML{
		@Override
		protected void __parse(StringBuilder html, String name) {
			html.append(name);
		}
	};
	
	public void parse(StringBuilder html, String name){
		if(StringHelper.isNotEmpty(name)){
			__parse(html, name);
		}
	}
	
	protected abstract void __parse(StringBuilder html, String name);
}
